package com.jhgsys.internal.incentive.service;

import com.jhgsys.internal.incentive.entity.IncentiveRewardGoods;
import com.jhgsys.internal.common.entity.QueryRequest;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 安全奖励物品 Service接口
 *
 * @author wanghjw
 * @date 2024-09-03 14:08:29
 */
public interface IIncentiveRewardGoodsService extends IService<IncentiveRewardGoods> {
    /**
     * 查询（分页）
     * @author wanghjw
     * @date 2024-09-03 14:08:29
     * @param request QueryRequest
     * @param incentiveRewardGoods incentiveRewardGoods
     * @return IPage<IncentiveRewardGoods>
     */
    IPage<IncentiveRewardGoods> findIncentiveRewardGoodsPage(QueryRequest request, IncentiveRewardGoods incentiveRewardGoods);

    /**
     * 查询（所有）
     * @author wanghjw
     * @date 2024-09-03 14:08:29
     * @param incentiveRewardGoods incentiveRewardGoods
     * @return List<IncentiveRewardGoods>
     */
    List<IncentiveRewardGoods> findIncentiveRewardGoodsList(IncentiveRewardGoods incentiveRewardGoods);

    /**
    * 根据ID查询
    * @author wanghjw
    * @date 2024-09-03 14:08:29
    * @param id
    * @return IncentiveRewardGoods
    */
    IncentiveRewardGoods findIncentiveRewardGoodsById(String id);

    /**
     * 新增
     * @author wanghjw
     * @date 2024-09-03 14:08:29
     * @param incentiveRewardGoods incentiveRewardGoods
     */
    void createIncentiveRewardGoods(IncentiveRewardGoods incentiveRewardGoods);

    /**
     * 修改
     * @author wanghjw
     * @date 2024-09-03 14:08:29
     * @param incentiveRewardGoods incentiveRewardGoods
     */
    void updateIncentiveRewardGoods(IncentiveRewardGoods incentiveRewardGoods);

    /**
     * 逻辑删除
     * @author wanghjw
     * @date 2024-09-03 14:08:29
     * @param incentiveRewardGoods incentiveRewardGoods
     * @param incentiveRewardGoodsIds incentiveRewardGoodsIds
     */
    void deleteIncentiveRewardGoods(IncentiveRewardGoods incentiveRewardGoods,String incentiveRewardGoodsIds);

    /**
    * 物理删除
    * @author wanghjw
    * @date 2024-09-03 14:08:29
    * @param incentiveRewardGoodsIds incentiveRewardGoodsIds
    */
    void physicallyDeleteIncentiveRewardGoods(String incentiveRewardGoodsIds);
}
